2151. Maximum Good People Based on Statements - LeetCode Solution


Array Bit Masking

Python Code:

class Solution:
    def maximumGood(self, statements: List[List[int]]) -> int:
        n=len(statements)
        ans=0
        def check(mask):
            for i in range(n):
                if mask & (1<<i)!=0: good.add(i)
            for i in range(n):
                if i in good:
                    for j in range(n):
                        if statements[i][j]==0 and j in good: return False
                        if statements[i][j]==1 and j not in good: return False
            return True
        for i in range(1,1<<n):
            good=set()
            if check(i):
                ans=max(ans,len(good))
        return ans


Comments

Submit
0 Comments
More Questions

349B - Color the Fence
144A - Arrival of the General
1106A - Lunar New Year and Cross Counting
58A - Chat room
230A - Dragons
200B - Drinks
13A - Numbers
129A - Cookies
1367B - Even Array
136A - Presents
1450A - Avoid Trygub
327A - Flipping Game
411A - Password Check
1520C - Not Adjacent Matrix
1538B - Friends and Candies
580A - Kefa and First Steps
1038B - Non-Coprime Partition
43A - Football
50A - Domino piling
479A - Expression
1480A - Yet Another String Game
1216C - White Sheet
1648A - Weird Sum
427A - Police Recruits
535A - Tavas and Nafas
581A - Vasya the Hipster
1537B - Bad Boy
1406B - Maximum Product
507B - Amr and Pins
379A - New Year Candles